package com.itheima;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MyDateUtil1 {
    // 私有构造
    private MyDateUtil1() {
    }

    // 按照默认的模式“yyyy-MM-dd HH:mm:ss”将日期对象格式化为字符串
    public static String dateToString(Date date) {
        // 日期格式化类
        return dateToString(date, null);
    }

    // 按指定的模式将日期对象格式化为字符串
    public static String dateToString(Date date, String pattern) {
        // 校验
        if (pattern == null || "".equals(pattern)) {
            pattern = "yyyy-MM-dd HH:mm:ss";
        }
        // 日期格式化类
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        String str = format.format(date);
        return str;
    }

    // 按照指定的模式将字符串解析为日期对象
    public static Date stringToDate(String dateStr, String pattern) throws ParseException {
        // 校验
        if (pattern == null || "".equals(pattern)) {
            pattern = "yyyy-MM-dd HH:mm:ss";
        }
        // 日期格式化类
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        // 解析
        Date date = format.parse(dateStr);
        return date;
    }

    // 按照默认的模式“yyyy-MM-dd HH:mm:ss”将字符串解析为日期对象
    public static Date stringToDate(String dateStr) throws ParseException {
        return stringToDate(dateStr, null);
    }

    // 获取时间间隔的方法，返回的是毫秒值
    public static long millisecondBetween(Date date1, Date date2) throws ParseException {
        long time1 = date1.getTime();
        long time2 = date2.getTime();
        return time1 > time2 ? time1 - time2 : time2 - time1;
    }

    // 获取时间间隔的方法，返回的是天
    public static long daysBetween(Date date1, Date date2) throws ParseException {
        return millisecondBetween(date1, date2) / 1000 / 60 / 60 / 24;
    }

}
